package com.algorithm.datastructure.queue;

public interface Queue <E>{

    /**
     * 向队列尾添加元素
     * @param value
     * @return true:添加成功,false:添加失败
     */
    boolean offer(E value);

    /**
     * 获取队列头部元素,移除
     * @return 如果队列非空返回队列头部元素，否则返回null
     */
    E poll();

    /**
     * 获取队列头部元素,不移除
     * @return 如果队列非空返回队列头部元素，否则返回null
     */
    E peek();

    /**
     * 判断队列是否为空
     * @return true:为空,false:不为空
      */
    boolean isEmpty();
    /**
     * 判断队列是否已满
     * @return true:为满,false:有位置
      */
    boolean isFull();
}
